#ifndef _MoteurGraphique_H
#define _MoteurGraphique_H

#include <string>
#include <iostream>
#include <math.h>

#include "defines.h"

#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/Window/WindowSettings.hpp>

#include "Monde.h"
#include "AfficherJeu.h"

class MoteurGraphique
{
	public:
		MoteurGraphique( int res, Monde &m);
		int getChoix();
		void render();
		void tempo( int ms);
		bool enCours();
      private :
		// Eveneements
		void gererEvents();

		// Complementaire
		void attendreFin();
		
		// Pub
		void viewerDiscretion();

		// Raccourcis
		void clear();
		void rafraichir();

		//si pas de pointeur, erreur à la compil liée au constructeur par défaut		
		sf::RenderWindow *App;

		
		/***
		*	Menu
		*/		
		void chargerRessourcesMenu();
		void menu();

		/**
		*	Affichage du jeu
		*/
		AfficherJeu* affichageJeu;

		std::string cheminDonnees;
		float dernierRendu;
		bool encours;

		/***
		* 	Selection
		*/
		void creerZoneSelection( Position debut, Position fin);
		bool selectionEnCours;
		Position debutSelectionPosition;
		Bloc blocSelection;

		/**
		*	VBariables internes
		*/
		Monde &monde;
		sf::Image icone;

		// sf::Clock debutSelectionClock; // Peut etre pour plus tard, cela depends
};

#endif
